//
// Created by jsjxsy on 2022/8/19.
//operator type() const;
//
#include <iostream>
using namespace std;
struct B;
struct A {
  A() = default;
  A(const B &);
};
struct B {
  operator A() const;
};
int main() {
  A f(const A&);
  B b;
  //A a = f(b);//存在二义性，1 f(const B&) 2 f(B::operator A())
  A al = f(b.operator A());
  A a2 = f(A(b));

//  while (cin >> value) {
//    cout << value << endl;
//  }
  return 0;
}
